package generatedtest;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.File;
import java.io.FilterInputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
import java.net.URI;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.file.Path;

// Test case generated by GenerateFlowTestCase.ql
public class Test {

	Object getThrowable_messageDefault(Object container) {
		return null;
	}

	Object source() {
		return null;
	}

	void sink(Object o) {}

	public void test() throws Exception {

		{
			// "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[this];taint;manual"
			BufferedInputStream out = null;
			InputStream in = (InputStream) source();
			out = new BufferedInputStream(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[this];taint;manual"
			BufferedInputStream out = null;
			InputStream in = (InputStream) source();
			out = new BufferedInputStream(in, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[this];taint;manual"
			BufferedReader out = null;
			Reader in = (Reader) source();
			out = new BufferedReader(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[this];taint;manual"
			BufferedReader out = null;
			Reader in = (Reader) source();
			out = new BufferedReader(in, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;BufferedReader;true;readLine;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			BufferedReader in = (BufferedReader) source();
			out = in.readLine();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[this];taint;manual"
			ByteArrayInputStream out = null;
			byte[] in = (byte[]) source();
			out = new ByteArrayInputStream(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[this];taint;manual"
			ByteArrayInputStream out = null;
			byte[] in = (byte[]) source();
			out = new ByteArrayInputStream(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayOutputStream;false;toByteArray;;;Argument[this];ReturnValue;taint;manual"
			byte[] out = null;
			ByteArrayOutputStream in = (ByteArrayOutputStream) source();
			out = in.toByteArray();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			ByteArrayOutputStream in = (ByteArrayOutputStream) source();
			out = in.toString((Charset) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			ByteArrayOutputStream in = (ByteArrayOutputStream) source();
			out = in.toString((String) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			ByteArrayOutputStream in = (ByteArrayOutputStream) source();
			out = in.toString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			ByteArrayOutputStream in = (ByteArrayOutputStream) source();
			out = in.toString(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ByteArrayOutputStream;false;writeTo;;;Argument[this];Argument[0];taint;manual"
			OutputStream out = null;
			ByteArrayOutputStream in = (ByteArrayOutputStream) source();
			in.writeTo(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[this];taint;manual"
			CharArrayReader out = null;
			char[] in = (char[]) source();
			out = new CharArrayReader(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[this];taint;manual"
			CharArrayReader out = null;
			char[] in = (char[]) source();
			out = new CharArrayReader(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;CharArrayWriter;true;toCharArray;;;Argument[this];ReturnValue;taint;manual"
			char[] out = null;
			CharArrayWriter in = (CharArrayWriter) source();
			out = in.toCharArray();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			DataInput in = (DataInput) source();
			in.readFully(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			DataInput in = (DataInput) source();
			in.readFully(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			DataInputStream in = (DataInputStream) source();
			in.readFully(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			DataInputStream in = (DataInputStream) source();
			in.readFully(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ObjectInputStream in = (ObjectInputStream) source();
			in.readFully(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ObjectInputStream in = (ObjectInputStream) source();
			in.readFully(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readLine;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			DataInput in = (DataInput) source();
			out = in.readLine();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readLine;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			DataInputStream in = (DataInputStream) source();
			out = in.readLine();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readLine;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			ObjectInputStream in = (ObjectInputStream) source();
			out = in.readLine();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readUTF;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			DataInput in = (DataInput) source();
			out = in.readUTF();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readUTF;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			DataInputStream in = (DataInputStream) source();
			out = in.readUTF();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInput;true;readUTF;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			ObjectInputStream in = (ObjectInputStream) source();
			out = in.readUTF();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;DataInputStream;false;DataInputStream;;;Argument[0];Argument[this];taint;manual"
			DataInputStream out = null;
			InputStream in = (InputStream) source();
			out = new DataInputStream(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual"
			File out = null;
			File in = (File) source();
			out = new File(in, (String) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual"
			File out = null;
			String in = (String) source();
			out = new File(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual"
			File out = null;
			String in = (String) source();
			out = new File(in, (String) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual"
			File out = null;
			URI in = (URI) source();
			out = new File(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;false;File;;;Argument[1];Argument[this];taint;manual"
			File out = null;
			String in = (String) source();
			out = new File((File) null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;false;File;;;Argument[1];Argument[this];taint;manual"
			File out = null;
			String in = (String) source();
			out = new File((String) null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;getAbsoluteFile;;;Argument[this];ReturnValue;taint;manual"
			File out = null;
			File in = (File) source();
			out = in.getAbsoluteFile();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;getAbsolutePath;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			File in = (File) source();
			out = in.getAbsolutePath();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;getCanonicalFile;;;Argument[this];ReturnValue;taint;manual"
			File out = null;
			File in = (File) source();
			out = in.getCanonicalFile();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;getCanonicalPath;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			File in = (File) source();
			out = in.getCanonicalPath();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;getName;();;Argument[this];ReturnValue;taint;manual"
			String out = null;
			File in = (File) source();
			out = in.getName();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;toPath;;;Argument[this];ReturnValue;taint;manual"
			Path out = null;
			File in = (File) source();
			out = in.toPath();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			File in = (File) source();
			out = in.toString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;File;true;toURI;;;Argument[this];ReturnValue;taint;manual"
			URI out = null;
			File in = (File) source();
			out = in.toURI();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;FilterOutputStream;true;FilterOutputStream;(OutputStream);;Argument[0];Argument[this];taint;manual"
			FilterOutputStream out = null;
			OutputStream in = (OutputStream) source();
			out = new FilterOutputStream(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;IOException;false;IOException;(String);;Argument[0];Argument[this].SyntheticField[java.lang.Throwable.message];value;manual"
			IOException out = null;
			String in = (String) source();
			out = new IOException(in);
			sink(getThrowable_messageDefault(out)); // $ hasValueFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[]);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			DataInputStream in = (DataInputStream) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[]);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			FilterInputStream in = (FilterInputStream) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[]);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			InputStream in = (InputStream) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			BufferedInputStream in = (BufferedInputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ByteArrayInputStream in = (ByteArrayInputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			DataInputStream in = (DataInputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			FilterInputStream in = (FilterInputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			InputStream in = (InputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ObjectInputStream in = (ObjectInputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;readAllBytes;;;Argument[this];ReturnValue;taint;manual"
			byte[] out = null;
			ByteArrayInputStream in = (ByteArrayInputStream) source();
			out = in.readAllBytes();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;readAllBytes;;;Argument[this];ReturnValue;taint;manual"
			byte[] out = null;
			InputStream in = (InputStream) source();
			out = in.readAllBytes();
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ByteArrayInputStream in = (ByteArrayInputStream) source();
			in.readNBytes(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			InputStream in = (InputStream) source();
			in.readNBytes(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;readNBytes;(int);;Argument[this];ReturnValue;taint;manual"
			byte[] out = null;
			InputStream in = (InputStream) source();
			out = in.readNBytes(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;transferTo;(OutputStream);;Argument[this];Argument[0];taint;manual"
			OutputStream out = null;
			ByteArrayInputStream in = (ByteArrayInputStream) source();
			in.transferTo(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStream;true;transferTo;(OutputStream);;Argument[this];Argument[0];taint;manual"
			OutputStream out = null;
			InputStream in = (InputStream) source();
			in.transferTo(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual"
			InputStreamReader out = null;
			InputStream in = (InputStream) source();
			out = new InputStreamReader(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual"
			InputStreamReader out = null;
			InputStream in = (InputStream) source();
			out = new InputStreamReader(in, (Charset) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual"
			InputStreamReader out = null;
			InputStream in = (InputStream) source();
			out = new InputStreamReader(in, (CharsetDecoder) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual"
			InputStreamReader out = null;
			InputStream in = (InputStream) source();
			out = new InputStreamReader(in, (String) null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ObjectInput;true;read;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ObjectInput in = (ObjectInput) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ObjectInput;true;read;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ObjectInput in = (ObjectInput) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ObjectInput;true;read;;;Argument[this];Argument[0];taint;manual"
			byte[] out = null;
			ObjectInputStream in = (ObjectInputStream) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;ObjectInputStream;false;ObjectInputStream;;;Argument[0];Argument[this];taint;manual"
			ObjectInputStream out = null;
			InputStream in = (InputStream) source();
			out = new ObjectInputStream(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual"
			FilterOutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual"
			ObjectOutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual"
			OutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual"
			PrintStream out = null;
			byte[] in = (byte[]) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual"
			ByteArrayOutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual"
			FilterOutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual"
			ObjectOutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual"
			OutputStream out = null;
			byte[] in = (byte[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual"
			PrintStream out = null;
			byte[] in = (byte[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual"
			ByteArrayOutputStream out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual"
			FilterOutputStream out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual"
			ObjectOutputStream out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual"
			OutputStream out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual"
			PrintStream out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			CharBuffer out = null;
			CharArrayReader in = (CharArrayReader) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			CharBuffer out = null;
			InputStreamReader in = (InputStreamReader) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			CharBuffer out = null;
			Reader in = (Reader) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			char[] out = null;
			BufferedReader in = (BufferedReader) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			char[] out = null;
			CharArrayReader in = (CharArrayReader) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			char[] out = null;
			InputStreamReader in = (InputStreamReader) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			char[] out = null;
			Reader in = (Reader) source();
			in.read(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			char[] out = null;
			Reader in = (Reader) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual"
			char[] out = null;
			StringReader in = (StringReader) source();
			in.read(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;StringReader;false;StringReader;;;Argument[0];Argument[this];taint;manual"
			StringReader out = null;
			String in = (String) source();
			out = new StringReader(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			CharArrayWriter out = null;
			String in = (String) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			CharArrayWriter out = null;
			char[] in = (char[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			CharArrayWriter out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			PrintWriter out = null;
			String in = (String) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			PrintWriter out = null;
			String in = (String) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			PrintWriter out = null;
			char[] in = (char[]) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			PrintWriter out = null;
			char[] in = (char[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			PrintWriter out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			Writer out = null;
			String in = (String) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			Writer out = null;
			String in = (String) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			Writer out = null;
			char[] in = (char[]) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			Writer out = null;
			char[] in = (char[]) source();
			out.write(in, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual"
			Writer out = null;
			int in = (int) source();
			out.write(in);
			sink(out); // $ hasTaintFlow
		}

	}

}
